The present disclosure relates in general to computer software, and in particular to a platform for building extensible business applications.
Many enterprises today have two ecosystems for managing electronic information—a database ecosystem in which information is captured and maintained in a shared database through the use of specialized, and often complex, software applications (referred to herein as traditional business applications), and a spreadsheet ecosystem in which information is exchanged among individuals, typically in an ad-hoc manner, using spreadsheets.
The database ecosystem is particularly suited to a shared enterprise environment because information is stored centrally and thus can be accessed by multiple users for viewing, modification, analysis, auditing, reporting, and other functions. In addition, the traditional business applications that serve as the front-end for data entry are typically designed to support features (e.g., security, workflows, etc.) that are useful in a business context. However, a significant disadvantage of this ecosystem is that traditional business applications generally cannot be built or customized by non-programmers (e.g., end-users). As a result, such users are limited to entering and managing the specific classes of data that these applications were originally programmed to support.
In the spreadsheet ecosystem, users have the flexibility to enter and keep track of any kind of data that suits their particular needs. For example, with a conventional spreadsheet application such as Microsoft Excel, users can easily enter, modify, and re-arrange data in any cell or group of cells. Further, since spreadsheets are inherently data-centric rather than code-centric, users without any programming expertise can build and customize spreadsheets to carry out various tasks. This makes spreadsheets an attractive and accessible data management tool for a wide range of users. However, spreadsheets do not support data storage/retrieval from a shared database or other business-oriented features, thereby limiting their usefulness in a multi-user enterprise setting.
Accordingly, it would be desirable to have techniques for building a new class of applications that combine aspects of spreadsheets and traditional, database-driven business applications.